import { ReactNode } from 'react'
import { NativeProps } from '../../utils/native-props'

export type SwitchProps = {
  /** 是否选中. default: - */
  checked?: boolean
  /** 选中时的内容. default: - */
  checkedText?: ReactNode
  /** 是否禁用. default: `false` */
  disabled?: boolean
  /** 默认是否打开. default: `false` */
  defaultChecked?: boolean
  /** 加载状态. default: `false` */
  loading?: boolean
  /** 状态改变时的回调函数，当返回 Promise 时，会自动显示加载状态（`loading`）. default: - */
  onChange?: (checked: boolean) => void | Promise<void>
  /** 未选中时的内容. default: - */
  uncheckedText?: ReactNode
} & NativeProps<
  /** 填充颜色. default: --rt-color-primary */
  | '--checked-color'
  /** 宽度. default: 51px */
  | '--width'
  /** 高度. default: 31px */
  | '--height'
  /** 边框宽度. default: 2px */
  | '--border-width'
>
